package ar.uba.fi.taller2.ftrs.demo;

import ar.uba.fi.taller2.ftrs.parser.*;
import ar.uba.fi.taller2.ftrs.tree.*;
import ar.uba.fi.taller2.ftrs.index.*;


public class Demo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
				
		Indexador indexador = Indexador.getIndexador();
		BSTree tree = BSTree.getBPTree();
		String document;
		/*
		document = "/home/martin/Desktop/repo/normastp.pdf";
		try {
			indexador.nuevoDocumento(document);
			DocumentParser.parseDocument(document);
		}
		catch(Exception e) {	
			 System.out.println(e);
		}
		*/
		document = "/home/martin/Desktop/repo/readme.txt";
		try {
			indexador.nuevoDocumento(document);
			DocumentParser.parseDocument(document);
		}
		catch(Exception e) {	
			 System.out.println(e);
		}
		/*
		document = "/home/martin/Desktop/repo/www.m3sa.html";
		try {
			indexador.nuevoDocumento(document);
			DocumentParser.parseDocument(document);
		}
		catch(Exception e) {	
			 System.out.println(e);
		}
		document = "/home/martin/Desktop/repo/www.ole.clarin.html";
		try {
			indexador.nuevoDocumento(document);
			DocumentParser.parseDocument(document);
		}
		catch(Exception e) {	
			 System.out.println(e);
		}
		document = "/home/martin/Desktop/repo/www.pg.html";
		try {
			indexador.nuevoDocumento(document);
			DocumentParser.parseDocument(document);
		}
		catch(Exception e) {	
			 System.out.println(e);
		}
		*/
		// genero el indice
		try {
			indexador.generarIndice();
		}
		catch(Exception e) {
			 System.out.println(e);
		}
		
		//TODO: hacer que este metodo genere un archivo en lugar de la salida 
		//por pantalla.
		
		tree.printXML("/home/martin/Desktop/arbol.xml");
		//tree.printXML();
		
		//TODO: leer consultas booleanas ingresadas por el usuario, aplicar filtros
		//a la consulta, buscar los terminos en el arbol y determinar los documentos
		//resultantes en base a los operadores logicos.

		DocsTermino dt;
		String term = "ubic";
		
		try {
			dt = tree.getListaDocs(term);
			if (dt != null) {
				for (int i=0; i<dt.getListaDocFrec().length; i++) {
					
					System.out.print(dt.getListaDocFrec()[i].getDocNum());
					System.out.print(" ");
				}
			}
			else {
				System.out.println("No se encontro termino:"+term);
			}
		}
		catch (Exception e) {
			System.out.println("Error!!");
			System.out.println(e);
		}
	}
}